<?php

@include_once("Lista.php");

class ListUtils {

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// function relist
//
// @pre-condition 	$lista y $head deben ser de la clase lista 
// @post-condition	retorna una nueva instancia de Lista con las siguientes caracteristicas:
//						columna 0 : columna 0 de $head 
//					 	columna 1 : columna $match_col de $lista si coinciden columnas 0 de ambas listas o en 0, en c.c.
//    
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	public static function relist( $lista, $head, $match_col = 1 ) {
		
		$new_list = array();
		$max = 0;
		$i	= 0;
		$lista->first();
		
		for ( $head->first(); !$head->isDone(); $head->next() ) {
			
			$item 	= $head->item();
			$aux 	= $lista->item();
			$new_list[$i][0] = $item[1];
			//echo $item[0]." == ".$aux[0]."<br/>";
			if ( !$lista->isDone() && $item[0] == $aux[0] ) {
				
				$new_list[$i][1] = $aux[$match_col];
				$lista->next();
				if( $max < $new_list[$i][1] )
					$max = $new_list[$i][1];
			}
			else {
				$new_list[$i][1] = 0;
			}
			//echo $new_list[$i][0]." - ".$new_list[$i][1].".<br/>";
			$i++;
		}
		
		$l = new Lista;
		$l->create( $new_list );
		$l->setMax( $max );
		
		return $l;
	}

}

?>
